package com.china08.yxyapi.entity.mg.mistakes;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.Id;

import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import com.china08.yxyapi.entity.mg.MongoBaseEntityNoId;

/**
 * 
 * 学生错题试题</br>
 * 一个学生,一道试题,只存储一条记录,
 * 
 * @author Richard Wang
 *
 */
@SuppressWarnings("serial")
@Document(collection = "yxy.mistakes.stu.ques")
public class StuMistakesQues extends MongoBaseEntityNoId {

    /** 主键 学生id+ 试题id */
    @Id
    private String id;

    /**
     * 学生id
     */
    @Indexed
    @Field(value = "student_id")
    private String studentId;

    /**
     * 学生名称
     */
    @Field(value = "student_nick")
    private String studentNick;

    /** 试题:ID */
    @Indexed
    @Field(value = "ques_id")
    private String quesId;

    /**
     * 答案:我的 ；选择题回答的答案 <br/>
     * 多选题，使用A，B 存储
     */
    @Field(value = "answer_of_my")
    private String answerOfMy;

    /**
     * 主观题, 通知类回答 题目的回答
     */
    @Field(value = "answer_text")
    private String answerText;

    /**
     * 主观题, 通知类回答 上传的图片
     */
    @Field(value = "answer_imgs")
    private List<String> answerImgs;

    /**
     * 错题来源, 可能来源多个 </br>
     * 00--作业系统 01--测评系统
     */
    @Field(value = "sources")
    public List<String> sources;

    /**
     * 每次将"试题发布者" ID,存入List中</br>
     * 发布用户:ID 在错题本中，查询需要根据教师id，查询错题,教师上传的微课,
     * 
     */
    @Field(value = "publish_user_id")
    private List<String> publishUserId;

    /** 学段 */
    @Field(value = "stage")
    private String stage;

    /** 学科 */
    @Field(value = "subject")
    private String subject;

    /**
     * 试题类型，使用题库中的的类型 （单选择题，多选择题，填空,解答）"
     */
    @Field(value = "question_type")
    private String questionType;

    /** 知识点:ID */
    @Indexed
    @Field(value = "know_id")
    private List<Integer> knowIdLst;

    /** 知识点:Name */
    @Field(value = "know_name")
    private List<String> knowNameLst;

    /**
     * 0--未消灭 1--已消灭
     */
    @Field(value = "status")
    private Integer status;

    /**
     * 0--普通 1--重点题
     */
    @Field(value = "focus")
    private Integer focus = 0;

    /**
     * 试题发布时间</br>
     * 只取最后一次,本试题发布的时间.
     */
    @Field(value = "publish_date")
    private Date publishDate;

    /**
     * 错误原因, 存储中文, 使用逗号分割 </br>
     * for example "审题马虎,思路错误,运算错误,格式错误" </br>
     */
    @Field(value = "mistakes_reason")
    private List<String> mistakesReason = new ArrayList<String>();

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getStudentId() {
        return studentId;
    }

    public void setStudentId(String studentId) {
        this.studentId = studentId;
    }

    public String getStudentNick() {
        return studentNick;
    }

    public void setStudentNick(String studentNick) {
        this.studentNick = studentNick;
    }

    public String getQuesId() {
        return quesId;
    }

    public void setQuesId(String quesId) {
        this.quesId = quesId;
    }

    public List<String> getSources() {
        return sources;
    }

    public void setSources(List<String> sources) {
        this.sources = sources;
    }

    public List<String> getPublishUserId() {
        return publishUserId;
    }

    public void setPublishUserId(List<String> publishUserId) {
        this.publishUserId = publishUserId;
    }

    public String getStage() {
        return stage;
    }

    public void setStage(String stage) {
        this.stage = stage;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getQuestionType() {
        return questionType;
    }

    public void setQuestionType(String questionType) {
        this.questionType = questionType;
    }

    public List<Integer> getKnowIdLst() {
        return knowIdLst;
    }

    public void setKnowIdLst(List<Integer> knowIdLst) {
        this.knowIdLst = knowIdLst;
    }

    public List<String> getKnowNameLst() {
        return knowNameLst;
    }

    public void setKnowNameLst(List<String> knowNameLst) {
        this.knowNameLst = knowNameLst;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getFocus() {
        return focus;
    }

    public void setFocus(Integer focus) {
        this.focus = focus;
    }

    public String getAnswerText() {
        return answerText;
    }

    public void setAnswerText(String answerText) {
        this.answerText = answerText;
    }

    public Date getPublishDate() {
        return publishDate;
    }

    public void setPublishDate(Date publishDate) {
        this.publishDate = publishDate;
    }

    public List<String> getMistakesReason() {
        return mistakesReason;
    }

    public void setMistakesReason(List<String> mistakesReason) {
        this.mistakesReason = mistakesReason;
    }

    public String getAnswerOfMy() {
        return answerOfMy;
    }

    public void setAnswerOfMy(String answerOfMy) {
        this.answerOfMy = answerOfMy;
    }

    public List<String> getAnswerImgs() {
        return answerImgs;
    }

    public void setAnswerImgs(List<String> answerImgs) {
        this.answerImgs = answerImgs;
    }

}
